-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
spec: proposal for terminology #101
base: eei-v2
Are you sure you want to change the base?
Conversation
More generally, it seems that we want Clients and VMs to both be swappable by each exposing only an API. I can envision three common cases, which follow.
@ehildenb Are you trying to model one of these cases? |
Note, I think we have agreed prior to call the actual underlying computational thing the "execution engine", and the combination of that + the client the "VM". So, I would say it's closer to: Client + EEI method implementations <--EEI--> execution engine |
|
||
**Ethereum Client**: Code which can interact with the blockchain (read/validate and sending transactions). | ||
**EEI method**: A method exposed by the Ethereum Client to the execution engine for interacting with the blockchain state. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wander maybe "function" would be more familiar name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to avoid the word "function" because they aren't functions in the mathematical sense. I think "method" or "procedure" is closer, in the sense of methods from OOP languages like Java which can alter the state of the surrounding context.
|
||
**Ethereum Client**: Code which can interact with the blockchain (read/validate and broadcasting transactions). | ||
|
||
**EVMC**: The *Ethereum Virtual Machine Connector* (correct name?) refers to one of (**TODO: Which one?**): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's API (C language) containing both API for VM and EEI.
Maybe I should physically separate both for clarity?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, the full name for acronym EVMC is here: https://github.com/ethereum/evmc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, so would:
EVMC: The Ethereum Client-VM Connector API is the C implementation of the EEI.
be an accurate description?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, good idea @poemm, I'll make all these definitions links when appropriate.
A comment which may confuse the conversation. Feel free to ignore. When someone reads "Ethereum Environment Interface", it needs explanation. "Ethereum Client-VM Connector API" is more self-explanatory, but the word "Connector" is unnecessary and adds the confusing "C" into the acronym. Generalizing the convention from EVMC, maybe we can consider using This convention can include versions, e.g. I know these names need work, but they are more self-explanatory and future-proof. |
I like what @poemm says here because Acronyms Seriously Suck |
@axic, @chfast, and @poemm, I've tried to specify the terminology we've discussed. Need feedback on the EVMC bullet point, and on the overall naming of things.